package com.ssy.lingxi.member.merchant.model.bo;

import com.ssy.lingxi.member.merchant.entity.*;
import com.ssy.lingxi.member.merchant.model.constant.MemberRegisterSourceEnum;

import java.io.Serializable;
import java.util.List;

/**
 * 新增会员信息内部接口参数BO
 * @author 万宁
 * @version 2.0.0
 * @date 2020-08-19
 */
public class AddMemberBO implements Serializable {
    private static final long serialVersionUID = -1540162544807734234L;

    /**
     * 平台会员审核流程
     */
    private ProcessBO platformProcess;

    /**
     * 上级会员
     */
    private MemberDO upperMember;

    /**
     * 上级会员角色
     */
    private RoleDO upperRole;

    /**
     * 新增会员的角色
     */
    private RoleDO roleDO;

    /**
     * 新增会员的会员类型
     */
    private MemberTypeDO memberTypeDO;

    /**
     * 新增会员的业务类型
     */
    private MemberBusinessTypeDO businessTypeDO;

    /**
     * 新增会员的注册资料
     */
    private List<MemberRegisterDetailDO> registerDetails;

    /**
     * 新增会员的名称（注册资料的“公司名称”字段）
     */
    private String name;

    /**
     * 国家代码
     */
    private String countryCode;

    /**
     * 新增会员的注册手机号
     */
    private String phone;

    /**
     * 新增会员的账号
     */
    private String account;

    /**
     * 新增会员的密码(原始密码)
     */
    private String password;

    /**
     * 新增会员的注册邮箱
     */
    private String email;

    /**
     * 如果是会员注册，则外部记录的操作角色为会员角色
     * 如果是（平台或）会员创建下级会员，操作角色为上级会员角色
     */
    private String operatorRoleName;

    /**
     * 注册来源
     */
    private MemberRegisterSourceEnum source;

    /**
     * 会员内部状态（如果为0时，不自动向工作流服务提交审核，待手动触发）
     */
    private Integer innerStatus;

    /**
     * 所选的等级（可为Null）
     */
    private Integer level;

    public ProcessBO getPlatformProcess() {
        return platformProcess;
    }

    public void setPlatformProcess(ProcessBO platformProcess) {
        this.platformProcess = platformProcess;
    }

    public MemberDO getUpperMember() {
        return upperMember;
    }

    public void setUpperMember(MemberDO upperMember) {
        this.upperMember = upperMember;
    }

    public RoleDO getUpperRole() {
        return upperRole;
    }

    public void setUpperRole(RoleDO upperRole) {
        this.upperRole = upperRole;
    }

    public RoleDO getRoleDO() {
        return roleDO;
    }

    public void setRoleDO(RoleDO roleDO) {
        this.roleDO = roleDO;
    }

    public MemberTypeDO getMemberTypeDO() {
        return memberTypeDO;
    }

    public void setMemberTypeDO(MemberTypeDO memberTypeDO) {
        this.memberTypeDO = memberTypeDO;
    }

    public MemberBusinessTypeDO getBusinessTypeDO() {
        return businessTypeDO;
    }

    public void setBusinessTypeDO(MemberBusinessTypeDO businessTypeDO) {
        this.businessTypeDO = businessTypeDO;
    }

    public List<MemberRegisterDetailDO> getRegisterDetails() {
        return registerDetails;
    }

    public void setRegisterDetails(List<MemberRegisterDetailDO> registerDetails) {
        this.registerDetails = registerDetails;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getOperatorRoleName() {
        return operatorRoleName;
    }

    public void setOperatorRoleName(String operatorRoleName) {
        this.operatorRoleName = operatorRoleName;
    }

    public MemberRegisterSourceEnum getSource() {
        return source;
    }

    public void setSource(MemberRegisterSourceEnum source) {
        this.source = source;
    }

    public Integer getInnerStatus() {
        return innerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        this.innerStatus = innerStatus;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    @Override
    public String toString() {
        return "AddMemberBO{" +
                "upperMember=" + upperMember +
                ", upperRole=" + upperRole +
                ", roleDO=" + roleDO +
                ", memberTypeDO=" + memberTypeDO +
                ", businessTypeDO=" + businessTypeDO +
                ", name='" + name + '\'' +
                ", countryCode='" + countryCode + '\'' +
                ", phone='" + phone + '\'' +
                ", account='" + account + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                ", source=" + source +
                ", innerStatus=" + innerStatus +
                ", level=" + level +
                '}';
    }
}
